{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1 align=\"center\"> Heat Maps using Matplotlib</h1>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n"
     ]
    }
   ],
   "source": [
    "%pylab inline\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>job_n</th>\n",
       "      <th>Energy</th>\n",
       "      <th>n_helices</th>\n",
       "      <th>r0_A</th>\n",
       "      <th>r0_B</th>\n",
       "      <th>r0_C</th>\n",
       "      <th>omega0</th>\n",
       "      <th>delta_omega0_A</th>\n",
       "      <th>delta_omega0_B</th>\n",
       "      <th>delta_omega0_C</th>\n",
       "      <th>...</th>\n",
       "      <th>invert_B</th>\n",
       "      <th>invert_C</th>\n",
       "      <th>z1_offset_A</th>\n",
       "      <th>z1_offset_B</th>\n",
       "      <th>z1_offset_C</th>\n",
       "      <th>delta_t_A</th>\n",
       "      <th>delta_t_B</th>\n",
       "      <th>delta_t_C</th>\n",
       "      <th>omega1</th>\n",
       "      <th>z1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>36019</td>\n",
       "      <td>-387.167</td>\n",
       "      <td>3</td>\n",
       "      <td>6.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>120</td>\n",
       "      <td>240</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.6</td>\n",
       "      <td>-3.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>99.999268</td>\n",
       "      <td>1.51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>36022</td>\n",
       "      <td>-402.606</td>\n",
       "      <td>3</td>\n",
       "      <td>6.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>120</td>\n",
       "      <td>240</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.6</td>\n",
       "      <td>0.6</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>99.999268</td>\n",
       "      <td>1.51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>36020</td>\n",
       "      <td>-395.944</td>\n",
       "      <td>3</td>\n",
       "      <td>6.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>120</td>\n",
       "      <td>240</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.6</td>\n",
       "      <td>-1.8</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>99.999268</td>\n",
       "      <td>1.51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>36002</td>\n",
       "      <td>-389.788</td>\n",
       "      <td>3</td>\n",
       "      <td>6.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>120</td>\n",
       "      <td>240</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-3.0</td>\n",
       "      <td>-1.8</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>99.999268</td>\n",
       "      <td>1.51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>36005</td>\n",
       "      <td>-388.016</td>\n",
       "      <td>3</td>\n",
       "      <td>6.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>120</td>\n",
       "      <td>240</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-3.0</td>\n",
       "      <td>1.8</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>99.999268</td>\n",
       "      <td>1.51</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 27 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   job_n   Energy  n_helices  r0_A  r0_B  r0_C  omega0  delta_omega0_A  \\\n",
       "0  36019 -387.167          3   6.0   6.0   6.0       0               0   \n",
       "1  36022 -402.606          3   6.0   6.0   6.0       0               0   \n",
       "2  36020 -395.944          3   6.0   6.0   6.0       0               0   \n",
       "3  36002 -389.788          3   6.0   6.0   6.0       0               0   \n",
       "4  36005 -388.016          3   6.0   6.0   6.0       0               0   \n",
       "\n",
       "   delta_omega0_B  delta_omega0_C  ...   invert_B  invert_C  z1_offset_A  \\\n",
       "0             120             240  ...          1         0            0   \n",
       "1             120             240  ...          1         0            0   \n",
       "2             120             240  ...          1         0            0   \n",
       "3             120             240  ...          1         0            0   \n",
       "4             120             240  ...          1         0            0   \n",
       "\n",
       "   z1_offset_B  z1_offset_C  delta_t_A  delta_t_B  delta_t_C     omega1    z1  \n",
       "0          0.6         -3.0          0          0          0  99.999268  1.51  \n",
       "1          0.6          0.6          0          0          0  99.999268  1.51  \n",
       "2          0.6         -1.8          0          0          0  99.999268  1.51  \n",
       "3         -3.0         -1.8          0          0          0  99.999268  1.51  \n",
       "4         -3.0          1.8          0          0          0  99.999268  1.51  \n",
       "\n",
       "[5 rows x 27 columns]"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "helix = pd.read_csv('Data/helix_parameters.csv')\n",
    "helix.head() # just seeing that data was imported properly by outputing first 5 cells"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(47475, 27)"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# shape of the dataframe\n",
    "helix.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index([u'job_n', u'Energy', u'n_helices', u'r0_A', u'r0_B', u'r0_C', u'omega0',\n",
       "       u'delta_omega0_A', u'delta_omega0_B', u'delta_omega0_C', u'z0_offset_A',\n",
       "       u'z0_offset_B', u'z0_offset_C', u'helix1 phase', u'helix 2 phase',\n",
       "       u'helix3 phase', u'invert_A', u'invert_B', u'invert_C', u'z1_offset_A',\n",
       "       u'z1_offset_B', u'z1_offset_C', u'delta_t_A', u'delta_t_B',\n",
       "       u'delta_t_C', u'omega1', u'z1'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# checking what the columns are\n",
    "helix.columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3 align='Left'>Selecting Columns (by different methods)</h3>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Energy</th>\n",
       "      <th>helix 2 phase</th>\n",
       "      <th>helix1 phase</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-387.167</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-402.606</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-395.944</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-389.788</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-388.016</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    Energy  helix 2 phase  helix1 phase\n",
       "0 -387.167              0             0\n",
       "1 -402.606              0             0\n",
       "2 -395.944              0             0\n",
       "3 -389.788              0             0\n",
       "4 -388.016              0             0"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# selecting a couple columns\n",
    "couple_columns = helix[['Energy','helix 2 phase', 'helix1 phase']]\n",
    "couple_columns.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Energy</th>\n",
       "      <th>helix 2 phase</th>\n",
       "      <th>helix1 phase</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-387.167</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-402.606</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-395.944</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-389.788</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-388.016</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    Energy  helix 2 phase  helix1 phase\n",
       "0 -387.167              0             0\n",
       "1 -402.606              0             0\n",
       "2 -395.944              0             0\n",
       "3 -389.788              0             0\n",
       "4 -388.016              0             0"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# selecting same columns a different way\n",
    "helix.ix[:,['Energy','helix 2 phase', 'helix1 phase']].head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3 align='Left'>Heat Map</h3>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(100, 1)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>Energy</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>helix1 phase</th>\n",
       "      <th>helix 2 phase</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"10\" valign=\"top\">0</th>\n",
       "      <th>0</th>\n",
       "      <td>-392.419841</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>-389.622691</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>-390.318620</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60</th>\n",
       "      <td>-392.198537</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>80</th>\n",
       "      <td>-393.661624</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>100</th>\n",
       "      <td>-392.226253</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>120</th>\n",
       "      <td>-390.955112</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>140</th>\n",
       "      <td>-394.319969</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>160</th>\n",
       "      <td>-392.594862</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>180</th>\n",
       "      <td>-389.254009</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                Energy\n",
       "helix1 phase helix 2 phase            \n",
       "0            0             -392.419841\n",
       "             20            -389.622691\n",
       "             40            -390.318620\n",
       "             60            -392.198537\n",
       "             80            -393.661624\n",
       "             100           -392.226253\n",
       "             120           -390.955112\n",
       "             140           -394.319969\n",
       "             160           -392.594862\n",
       "             180           -389.254009"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# this is essentially would be taking the average of each unique combination. \n",
    "# one important mention is notice how little the data varies from eachother.\n",
    "phase_1_2 = couple_columns.groupby(['helix1 phase', 'helix 2 phase']).mean()\n",
    "print phase_1_2.shape\n",
    "phase_1_2.head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>helix1 phase</th>\n",
       "      <th>helix 2 phase</th>\n",
       "      <th>Energy</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-392.419841</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>20</td>\n",
       "      <td>-389.622691</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>40</td>\n",
       "      <td>-390.318620</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>60</td>\n",
       "      <td>-392.198537</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>80</td>\n",
       "      <td>-393.661624</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   helix1 phase  helix 2 phase      Energy\n",
       "0             0              0 -392.419841\n",
       "1             0             20 -389.622691\n",
       "2             0             40 -390.318620\n",
       "3             0             60 -392.198537\n",
       "4             0             80 -393.661624"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "phase_1_2 = phase_1_2.reset_index()\n",
    "phase_1_2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nlyPzq50bXi4V2fEzNznpvPzzj8WWxWn19qzhxwued9IBOOsduztrlctFpp00z1lr9a+io2zWGr8d\nPn2js1b3Vcel0tr/wnuctR675H3uWuUihU/8h5NOz3X/FFsWp7VmzRrWb3JfVk4eH+9yjr0vSkV2\nPuM/nbWW//tHnHQCrdd/7Q5nrae/9X7nOi4048ddVQ2f/TwFGBiUhykiMhZow4tXXlTV9cB9ft1+\nEfkrMKOWTkNdPSJytYh0i8hjEWVfFpEBEZkWyjtPRBb5X1uOaOS1GYZhOKEpHikQkUtFZClwInCh\nn30TsA5YAbwAfEdVeyrqFYCjgP+tpdFoH/81wJGVmSIyAzgcWBLK2wc4HtgH+ADwExGp66/hA2tf\njczXjWtj62QlZmw5Jl5A9zL3bwK1tOJo1Zi7fatejL6GdfEuilTj14D4yHFlz1bxu6fVimNTz0tN\n0YGRjrlbH7svInf7vvrg8bj//1EAqnqBqu4KXAec7Vc7FOgHdgT2AL4iIjNDbY4F5gHfV9UXavWl\noa4eVb1fRKLizX0P+CpwSyivE7heVfuBF0RkEV5n/9zIazQMw0hCkh9r//LAH/nrn++v0Y4enlBy\nHnAbcDHe6v8OVR0AXhWRBcAheKt/gCuBp1X1h0kabrqPX0SOBpap6uMVC/qdgT+F0sv9vLoxZsp2\n0dc0YUpsnazEjJ2a74jM32GXeD9+Wq04WjXm7qTp0S7RcW35umqNa0B85LiyPffaq+5acYwvvLYp\nOjDSMXdrW/6D3jqbg946ezB99Q+/5aQhInuqahC27BjgKf/5UuA9wHUiMgV4K94CGhG5FMip6mlJ\ndZpq+P1fo8/Hc/MYhmFsOzRnI//lIrI33o+6S4DT/fwfA9eIyBN++mpVfUJEdsazqU+KyCP+Vf5I\nVX9RTaTZK/7XATOBv/n++xnAX0XkULwV/q6h187w8yKZM2cObW1tAMyaNYvZs2cPriICn32wkg/S\numkdY6ZsN6S80vcf+B+nT5++lS8yaL/SPznQ50XmGTOpfTDdX+xmwvZ7RpaH269sL6wZXhV1L3t+\ncHUf+Pun5jvoXvY8U3KFwXS4PKo/QXr16tXs5a8KK8uj+gMwsKHMuPxOseXNGr+gjaTjV6kX+O6D\nFf3a5U8xsWOnwXSlb991/LyxKjFmYvvgc+//MuNyOw2mK8vj9BYtWsS0adMi+xM3vs8vfo5D3nxo\n7PVFjV/S+drc5/nZx07yVt8bup9hXH7HwXRleZrx27y+OLi6D/z6YyfntvLxV5YHzJ8/nwULFgza\nh3rRDLuvqpHb/lR1Ld5voJX5y0nxW20zDL/4D1T1CbwfJ7wCkeeBg1R1jYjcgvc15rt4Lp49gQfj\nGu3q6ooXrHDdDH4AbFoXXT5+6xuk8mtorXTYIAXpMRvKseVx7UW9AQIC4w5D3T610vXoD3iGq1p5\nPfWqjV9lG7XGrzJd6cIZO2nqVnmVHwCu/YEtRj38fHD8JrbHvjaqvbDRT3o9a1avrnp9ru2FCQz6\nluufulVeZXma8Qu7dCrdO7XSnZ2ddHZ2Dqbnzp07pP00DLTQMTGN3s45D/g/YG8RWSoin6p4ibLl\nQ2EhcAOwELgdOLPeB/KYjz+ZVhzm4x+elvn4h6cDI+3jb8puzqbQ6F090X/Vs6V8j4r0ZcBljbwm\nwzCMNLTQgn90ndVj+/iTacVh+/iHp2X7+IenAyO9j9/9X1ZpuSMbDMMwGsFAdu24My13Hn8zD2nL\nFTooOdZpzxcoOh4klfaQtnyhg541q2u/MEQu30Gp6NYngPZcgWLMt5JYrRTjB+nGMF/ocJ5fSHfw\nV5oxTDN+aQ9p6+joYPVqx/tiG56rep3H/7un3L+lvPsN0zN5Hn/LGX7DMIww9TL89z610rnee97w\nmkwa/lHl47fz+GuXZeXc9SxoZX2umqmVlblq9fP4m4X5+A3DMBKQ5R9rXTFXj2EYLU29XD13LYze\nFViNI/bdLpOuHlvxG4ZhJKCVVvzm48d8/EnrZMHv3kytrM9VM7WyMlfm468PtuI3DMNIQJYNuSvm\n4zcMo6Wpl4//tie6net96E07mI/fMAxjW6WV1prm48d8/EnrZMHv3kytrM9VM7WyMlcj6uO3s3oM\nwzBGF6204jcfv2EYLU29fPy3PPayc72j99/RfPyGYRjbKgMZdt24Yj5+zMeftE4W/O7N1Mr6XDVT\nKytzZfv460PLrfibefzuzJl7UC67BYaYOjVHqeR2bHTao5LTaM3cfQ/KJfdgF1Pbc87HYacZP2hu\nv9IcK5xGK834tex90cS5ciHDdtyZlvPxiwh7z7nDuc1nut6P61iICFOOu8apztobP5VKZ/rJv3Gq\nA7Dq2hNSae17/p3OWgu/eWRTxg/Sj+FOn73ZWWvFlcem0nrLZb93qvPn896VSmfyR692qgOw/ren\npdJ6zw/+z1nr3s+/PZXW7ufc5qz1/Pc+FKlVLx//zY+6Rxo79sDXZtLH3+hg61eLSLeIPBbK6xKR\nJ0XkURG5WURyobLzRGSRX35EI6/NMAzDhYEUD1dE5BIR+ZuIPCIid4jIjn7+OBH5pYg8JiJ/F5Fz\nI+reEra11Wi0j/8a4MiKvLuAN6rqgcAi4DwAEdkXOB7YB/gA8BMRqesn5cbVyyPzq8XxTOtTHCi5\n/5VfNa2BvlJkfprYtLW04tiwKnr86q0D9R+/avT3RI9h3Jin1Vr/6jLnOrW0dEM5Mj/N+NXSimPd\nK+792iZj7qo6P1LQpaoHqOos4DbgIj//OGCCqu4PHAJ8TkR2DSqJyEeAxIPTUMOvqvcDayry7lHV\n4MPwAWCG//xo4HpV7VfVF/A+FA5t5PUZhmEkRVM8nDVUw5/kU9jyxUGBKSIyFmgDNuAbehGZApwD\nXJpUZ6R/3D0VCJzXOwN/CpUt9/PqxoRp0c2NnZyLzAeYPn16Kq0x7Ts416mmNWZSe2T+uPxOzjq1\ntOKYON19OrIyftUYV4gew7gxT6s1ebtdnOvU0pKJUyPz04xfLa042rZ371fauar2Xm00zfo9VEQu\nBU4CeoB3+9k3AZ3ACmAycI6qBr/s/yvwHWB9Uo0RM/wi8nVgk6q6/2oJzJkzh7a2NgBmzZrF7Nmz\nB2+m4OtgcJMkTQcEX0OD9uLSAcHX7eBNWCudtP3wm2OgrzRoiAIXRK20a3+CdP86bzzGteWc0q56\nAa7jF7SRtD+VeknHL0inma9Na3sZPyU/+ByomQ73zaU/zR6/pP0J0mnGb/P6Yur37/z581mwYMGg\nfagXSXz2Cx/+PxY+/KeqrxGRu4HwJ7Pgrei/rqq3quoFwAUi8jXgbOBiPO9HP7AjMB34o4jcA+SB\n16nql0Rkpt9WTUbE8IvIKcAHgfeEspcD4aXDDD8vkq6urtj2K1cFQXrj6uVMmLZzzVVD+AYMv0Gi\nymHoqksmTmWg1D2YX1ke116gVWs1FF6J9veuGLLqr1ypRumF38yV5YFBr0xvWLWcidN3ji2Paq8R\n41fZRq3xq0xXjs9AX3mrVX/lB4Dr+MEWoxd+vv7VZUzebpetyipfG9deVH/BM+r1Gj9INl+V17tp\nbXGrVX+t/iQZv/B7NPw8/IEQVQ7Q2dlJZ2fnYHru3LlD2k9DkhX/Pge/jX0Ofttg+rdXfi+qncMT\nSs7D8/NfDJwI3OG7yV8VkQV4vv7XAAeLyGJgPLC9iNyrqu+JaRNozh9wCaFPIRF5P/BV4GhV3RB6\n3S3Ax0VkgojsDuwJPNiE6zMMw6hJM/6AS0T2DCWPAZ7yny/FXyj7Pv23Ak+p6k9VdYaq7gHMBp6u\nZfShwSt+EZkHvAuYLiJL8X6hPh+YANztb9p5QFXPVNWFInIDsBDYBJxZ7wN5zMefTCsO8/EPT8t8\n/MPTgZH18TeJy0VkbzzP0hLgdD//x8A1IvKEn75aVZ+IaiAJDTX8qnpiRHbsX+yo6mXAZY27IsMw\njHQ046ddVf1YTP5avO3u1eouAfZPojOqzuqxffzJtOKwffzD07J9/MPTgZHdxz+g6vzIKiO9ndMw\nDGObILtm3J2WO6unmYe0pTkkqz1XoNjbeJ20WlkfP0g5hoUOSin6lebgrzRjmPXxa+p9Uee5qtdZ\nPdc8uMS53qcO3S2TZ/W0nOE3DMMIUy/Df3UKw39aRg3/qPLx23n8tcuycu56FrSyPlfN1MrKXNl5\n/PUhkY9fRHYD9lLVe0RkMjBOVeN/+TIMw2gxsvxjrSs1XT0i8hngs8A0VX2diOwF/FRV39uMC4y5\nJnP1GIaRiHq5en72pxec633ubTMz6epJsuI/C++ciD8DqOoiEdm+oVdlGIaRMVppxZ/Ex79BVTcG\nCREZxza6s8l8/LXLsuLLzYJW1ueqmVpZmauR9PEPqPsjqyRZ8d8nIucDk0XkcOBM4NbGXpZhGEa2\naKEFfyIf/xjgNOAIvMPW7gSuGkknu/n4DcNISr18/D+6/3nnev88e/dt08fvHwP6c+DnIjINmGFW\n1zCM0cbAtunhjqSmj19Efi8iOd/o/wXvA2DoIdPbAObjr12WFV9uFrSyPlfN1MrKXNk+/vqQ5Mfd\nvKoWgY8Cv1LVtwAjtpXTMAxjJGilH3eT+Pgfx/PvX4sXGuwhEXnMj/Y+IpiP3zCMpNTLx3/Ffc85\n1/vyYa/LpI8/yYr/ErwfdJ/1jf4eQPx3O8MwjBZkVLl6VPVGVd1fVc/004tV9djGX1o6coUORMT5\nkSt0RLZXzafYnss767Tn8rHtxWnl8oVUfWpvj49WFKeVpk/V+lV1/PIptfIptFL2K5/p+yLdvd7e\n7q7V3p5yrmK0qo1f2vu90DEtts160Equnpq7ekRkEt52zjcCk4J8VT21gdeVmlJvDzt8+sbIsqjA\n5OAF3Hj1P9y7Uy4Veed3748sW/fqMtoiQu394UuznXVKxV4mHn45MmHKkLKB8iuMmRr9h9Tl2852\n1iqXiuw6SFklAAAgAElEQVRz3p2RZUGw9SievOxId61ikQ/+9M/RZd3LmLpDdEi/209/i7tWqci+\n57v1q39dkWe+f1wqragxrPf4lYo9tB/7E8ZMHBoicnNxBWNz0SEle+d90lmrXC7S8U/XRZb1F1cw\nLkZrzX98wlmrVOzllN88FlnWV+phUnshsuyXJzTW+9xK7uUkrp5fAzsCRwL3ATOAbfKAtrj4tPWO\nrQpEGv1aVI2tGmH0gVijPxytOJoZczfO6DdCK65f49rqG4s5zfjV0ooy+kCs0R+OVhxxRr/eOkCs\n0W8GrbTiT2L491TVfwHWquq1wIeAREsuEblaRLpF5LFQXoeI3CUiT4vInSKSD5WdJyKLRORJETnC\ntTOGYRiNYrQZ/k3+/z0i8iYgDyRdZl6D900hzLnAPar6euBe4DwAEdkXL5jwPsAHgJ+ISF1/DY+L\nT1vv2KrguXpcqRpbdePayPyB8ivOOrW04mhmzN1yd/PiuMb1q39dfWMxpxm/WloDG6Lv3c3F5sVi\n7k+hlXau+krukbnqhab4l1WSGP4rRaQD+BfgFmAh0JWkcVW9H6iMhdaJtzUU//9j/OdHA9erar+q\nvoC3c+jQJDqGYRiNphkrfhG5RET+JiKPiMgdIrKjnz9ORH4pIo+JyN9F5NxQnfEi8jPfi7JQRD5S\nSyfJkQ1X+U/vA/Zw78oQtlfVbr/tl2XLEc87A38KvW65n1c3zMefTCsO8/EPT8t8/MPTgZH18TeJ\nLlW9EEBEzgYuAs4AjgMmqOr+4gXDWigi81R1KfB1oNv3oiDeKQtVSbKrZyJwLDAz/HpVvcS5S9Gk\n+j40Z84c2traAJg1axazZ88evJkC101g0JOmA4KvoUF7cemATWt7ARg/JZ8onbT98JtDN64dNP6B\n26dW2rU/QTpwcQSGL2naVS9gY9kbnwlT84nSQRtJ+1Op59q/NPPVv67YtPEL3D3Bh0CtdNBG2vFz\n1UszfuHdO4F7p1Y6YP78+SxYsGDQPtSLZmzqUdVyKDkFGAiKgCkiMhZoAzYAwY1zKvD6UBura+kk\nOZZ5PtCLd07PhgSvr0W3iOygqt3+15jASb0cCC/zZvh5kXR1xXubKlfwQTrYzllthQ9b34DhN0hU\nOWwx6OH0uleXDeZXlse1F2jVWg2FV/9R2zkrvx1E6YXfzJXllSvdIB1sR4wrj2ovyfiFDXqQLncv\nG8yvLK9so9b41erf5vWlrVbjlQbZdfwqNYYzflF54ecDG0pDVv1jJrZ7Pn4/P+pbQVx7Searsr2B\nDeWtVv2V5WnGL7yyDz+P2s5Zme7s7KSzs3MwPXfu3CHtp6FZgVhE5FLgJKAHeLeffROem3wFMBk4\nR1V7QptjLhWRdwHPAv+sqq9W00ji45+hqv+oql2qekXwcOmH/wi4BTjFf34y3gdLkP9xEZkgIrsD\newIPOugYhmE0jHr5+EXkbt9XHzwe9/8/CkBVL1DVXYHrgOCPcQ4F+vG21u8BfEVEZuIt3mcA96vq\nwcADQE37nGTF/38isp+qPp7gtVshIvOAdwHTRWQpnr/qcuBGETkVWIK3kwdVXSgiN+D9eLwJOLPe\nB/KYjz+ZVhzm4x+elvn4h6cDI+vjT2KNXnjszyx5LPqPEre0o4cnlJwH3AZcDJwI3OEfk/+qiCwA\nDlHVm0Rkrar+p1/nRjzXT1ViDb94h7Op/5pPichiPFePeNde+5A2VT0xpuh9Ma+/DLisVruGYRjN\nJomrZ9f9DmXX/bZsRvzjdT9y0hCRPVX1WT95DPCU/3wp8B7gOhGZArwVCI7Hv1VE3q2qv8OzrQtr\n6VRz9XwYOApvT/2eeCd0HhXK3+awffzJtOKwffzD07J9/MPTgRHex9+cQ9ou990+j+IZ8S/4+T8G\n2kXkCeDPwNWq+oRfdi5wsV/nE8CXa4nErvhVdUnwXEQOAmbjfQNYoKp/TdEhwzCMbZaB2i8ZNqr6\nsZj8tfhu8YiypcBhLjpJzuO/EG8P6W/9rGOAG1X1UheheiJVzuPPFToo9bqvCtrzBYo9lX9rVp18\noYOio1YuX6DXUSeXL1Aq9jrVAe+USNfrS9MnSNevfEcHxZ4UWoUCvWsaP1eQsl9Nuy86KBVT3Ou5\nAsXe7GoVOqY5jwV4496zZuhORpH6nMf/1f9+qvYLK/j2h9+QyfP4kxj+p4EDVLXPT08GHg3+WGAk\nqGb4DcMwwtTL8H/lVnfD/52jsmn4k2znfInQcczARKrsr88yFnO3dllWYqtmQSvrc9VMrazM1UjG\n3G2lQ9qSbOfsBf4uInfj+fgPBx4UkR8AqOrnG3h9hmEYmaCVvAxJXD0nVyv3j2puKubqMQwjKfVy\n9Zwz/0nnet/r3CeTrp4kh7Q13bAbhmFkjSy7blxJ4uNvGczHX7ssK77cLGhlfa6aqZWVuTIff31I\n4uM3DMMY9bSSe7mmjz+LmI/fMIyk1MvHf+Zva56EMISffHTfTPr4Y109IjJWRD4nIv8qIu+oKLug\n8ZdmGIaRHVTV+ZFVqvn4f4b3Z8CrgB+IyHdDZR9t6FU1CPPx1y7Lii83C1pZn6tmamVlrkbSx9+k\ns3qaQjXDf6iqnqiq3wfeAkwVkd/6Ebky99XFMAyjkQyoOj+ySqyPX0SeUtU3VORdCByJFzd3ryZc\nXyTm4zcMIyn18vF/5oYnar+wgp8f/6Zty8cPPCwi7w9n+HF2r8GLv2sYhjFqGBU+flX9J1W9IyL/\nKlUd39jLSk8u34GIOD9y+Y7I9qr5FNvbc8467e3xUZ3itHKFdH1qzw2NVVtLq709n06rPVqr6vjl\nUmrF9KuqVj6dVr4jxX2Rol9p5irtvR43V9W0mjpXKbVyhei5qhet5ONvuX38pWIPk475eWTZQLmb\nMVN3GJKvG8uUbj/HWatcLjHpHdEbnAbWrWJM29DwcuUF7qdZl3p72Om0XzF20tAPjU09yxlfiA7p\n9+KPj3HWKpeLTP7o1ZFlA6VuxrQPHT+A8m9Pc9cqFXnt6b+NLOvvWcG4QnRIv5d+6r63oFws0vnz\nh6LLupcydYddh+RvLPfwP+ckjZIXaq9UZPdzbhva3prlTOiInqvnv/chZ51SsYfC8T+LDB3a37si\nNtTo6l/FBcaLp1wqMuOs/4osq/s9WCqyx5dujyzbvL7I2MnRi6fF3/2gs5YLWfbZuzKq/nI3yugD\nyISpsXXSxgaNMvq1qKYVZfSB2DfccLTiiDP69dYBYo1+I7SijD7AhKnx8V3TaMUZ/VpUjbkbEy86\nzugPRyuONPdg2rmKM/qGGyNm+EXkHBF5QrwwY9eJyAQR6RCRu0TkaRG5U0Tiv5MahmE0EU3xyCo1\nDb+InFaRHisiFw1HVEReC5wNHOQHbR8HnIAXO/IeP8jLvcB5w9GpZKDcHZmvG8uxddLuGx5Y516v\nmtbmvuj4r5t66h/HNY6BUvT41VsHPFdPs7TK3Usj8zeW4yNOpdHauKYBMXdj4kXHxZcejlYcae7B\ntHO1eX18HORGMyp+3A3xXhG5XUR2EpE3Ag8A0d8v3RgLTBGRccBkvOAunUBwGui1eGEeDcMwRpxR\ndUibqp4oIv8IPA6sBU5U1QXDEVXVl0TkCmApsA64S1XvEZEdVLXbf83LIrL9cHQqMR9/Mq04zMc/\nPC3z8Q9PB0bWx5/lFbwrNQ2/iOwFfAG4GdgH+KSIPKKq69KKikgBb3W/G16ErxtF5BMMdYvFjvSc\nOXNoa2sDYNasWcyePXvwZgpcN4FBT5oOCL6GBu3FpQcvcpM3FDK+LVE6afvhN8fmvuKg8Q/cPrXS\nrv0ZHL8N/vhMnOqUdtULCNwVgRGrlQ7aSNqfSr3AhRMY9lrpVPMV2n0SuCdqpcN9c+lPs8cv6f0X\npJs9fvPnz2fBggWD9qFeNMPui8gleLZxAOgGTvEXweOAq4CD8Lwlv1bVy/06J+C5xQfwQuX+k6oO\njTofIsl2zluBs1T1f0VEgC8BDwFvTNUzj/cBi4OLE5H/BN4OdAerfhHZEXglroGurq7YxitX8EE6\n2M5ZbYUPW9+A4TdIVDlsMejh9MC6VYP5leVx7QVatVZD4dV/1Fa6ym8HUXrhN/OQ/kycGpkOtnPG\nlUe1l2T8KletYya109+zYjA/alUbbqPW+FWmK1fyG9cWt1r1V34AuI4fbL0yDZ4H2zkrV62V6aj2\novoLnlGPHL9e9/GDZPNVeX8N9JW2ugeHe/9B9PhB9HbOynRnZyednZ2D6blz5w5pPw1NWvF3qeqF\nACJyNnARcAZwHDBBVfcXkcnAQhGZh+ci/z7wBlVdIyLfAv4ZuKSaSBIf/6Gq+r8A6nEF8JG0vfJZ\nCrxVRCb5HybvBRYCtwCn+K85GZg/TB3DMIy60Awfv6qGvz5PwVvFg+f9mCIiY4E2YANQZMu5ae2+\nLc3hrfqrErviF5H3qOq9wPu89obwTK3G41DVB0XkJuARYJP//5V4PxrfICKnAkuA49NqRGE+/mRa\ncZiPf3ha5uMfng6MDh+/iFwKnAT0AO/2s2/CcwGtwNsMc46q9vivPxPvN9gysAg4s5ZGNVfPYXhb\nKo+KKFMg+k8uE6Kqc4HK72Cr8dxAhmEYmaJeZl9E7gbCqyjxm/+6qt6qqhcAF4jI1/C2vV8MHAr0\nAzsC04E/isg9wIt4rqADVPUFEfkhcD7wjWrXEGv4VfUi//9Ppete9qh2ZEMcUT7PRFoxRzZUo5pW\n+MfdMNX+XD6tVhzVjmyopw5UP7Kh3lrVjmyop1a1IxuqUU0ryscP1Y9sSKsVR5p7MO1cVTuyodEk\nObLhlace5tWn/lL1Naqa9ByQecBteIb/ROAOVR0AXhWRBcAhwGv8Nl/w69wAfK1Ww9VcPV+qVlFV\nv1ut3DAMo5VI4unZ7vWHsN3rDxlMPzn/SicNEdlTVZ/1k8cAT/nPlwLvAa4TkSnAW4Hv4QXK2kdE\npqvqKuBw4MmaOlXO46/617m+q2ZEkCrn8efyHZSK8Su1ONpzBYq9a5zq5PIFSsVeR508xV6368sV\nOig51gFozxco9rj2qYnj18R+5Ts6KPa4a+UKBXrXNL5fNleN0xKpz3n8x/6i+ko+iptPPdhJ2//t\nc2+8H3WXAKer6grf2F8D7Ou/9BfB4ltEPgt8Edjo1zlFVasOugVbNwyjpamX4f/o1Q871/vtaYds\nc4FYABCRvUXkf0XkCT+9v2yjwdYt5m7tsqzEVs2CVtbnqplaWZkri7lbH5Ls4/853l+FbQJQ1ceA\njzfyogzDMLLGqIi5O/gCkYdU9c3+MQ2z/LxHVfXAplxh9DWZq8cwjETUy9Vz9JXRgXyqcctn35xJ\nV0+SIxtWisjr8LexisjH8P6IwDAMY9TQSovNJK6es4CfAW8QkeV4vx6f0dCrahDm469dlhVfbha0\nsj5XzdTKylyNpI9/tB3LvBjv2IYpwBhVjY78YBiG0cJopmNquZHExz8ROBaYSeiDQlWrnv7WSMzH\nbxhGUurl4//Av//Zud7/nPGWbdbHPx/vzPy/4J0IZxiGMepopcVmEh//DFX9R1XtUtUrgkfDr6wB\nmI+/dllWfLlZ0Mr6XDVTKytzZT7++pDE8P+fiOzX8CsxDMPIMK0UbL3aWT2P423hHAfsBSzGc/UI\nXkyW/Zt1kRHXZj5+wzASUS8f//t++Cfnevec/bZtzsf/4aZdhWEYhtE0Yl09qrqk2qOZF+lCrtCB\niDg/coWOyPaq+RTbc3lnnfZcPra9OK1cPl2f2tvdtdL0qVq/qo5fey5lv6LPY6/3XIkI+TT3RT7F\nfZFPcV+kvNfT3INNvS9SasW9h+tFKx3ZkGRXzzZFqbeHHT9zU2RZXHCKgb4Sr/zaPd5MuVRk/wvv\niSzrW/Uik6bPGJL/2CXuAcZKxR7ajv7hkKDmUD04SvnGdH065NLfRZb1rVzGpNfsEln28AXvjsyv\nqlUuMemd0ad7VwtkU/5D1RPDo+uUiuz5lf+JLIsLkLJ5fZHnf/yP7lrFIh/66YND82MCvgDcdvqh\nzjql3h62/+Q1zoFYXv75x5y1yqUirz09OuhetaA5L/30o6m0tj/thsiyuMAzAK9cXddIrUPIsB13\npuUMfzXi3ghxNxKkjw0aZfRrUU0ryuhDuji4tbTiiDP69daB+scsrkZcVKxqkZ7SaMUZ/VpkPeZu\nM+MjV3uvNppW+l0xya6ehiAieRG5UUSeFJG/i8hbRKRDRO4SkadF5E4Rif9OahiG0URG27HMjeLf\ngNtVdR/gALwQY+cC96jq6/ECvZ9XT8H+3uiz5Qb64k+hSLtvuG/Vi851qmnphui4wAOlbmedWlpx\n9K1c1hQd8Fw9zdLauGZ5ZP7m9cW6apW7lzrXqaUVd+/G3evD0Yqjv8ddK/V9UeW92mhaaTvniBh+\nEckB/6Cq1wCoar+q9gKdwLX+y67FizlpGIYx4tiKf/jsjnfc8zUi8lcRuVJE2oAdVLUbQFVfBrav\np6j5+JNpxWE+/uFpmY9/eDow8j7+Vlnxj9SPu+OAg4CzVPVhEfkenpuncqRiR27OnDm0tbUBMGvW\nLGbPnj14MwVfB4ObJGk6IPgaGrQXlw7oX+cFXB/Xlk+UTtp++M2hG8qDxj9w+9RKu/YnSLv2J0i7\n6g32bdM67/rHtyVKB20k7U+lXuDCCQx7rXSa+dpY7mHC1MLgc6BmOtw3l/643u9BG2nHz1UvzfiF\nd++4vn/nz5/PggULBu1DvciyIXdlpAz/i8AyVQ2iF9+MZ/i7RWQHVe0WkR2BV+Ia6Orqim28clUQ\npIMtbrVWDeEbMPwGiSqHLQYwnO5b9eJgfmV5XHuBVq3VUHj1H7Wds/LbQZRe+M2cpD+wZTtnXHlU\ne0nGL2zQg/TAulWD+ZXllW3UGr/KdOVKfnNfaatVf+UHgOv4wRajHn4ebOcMl1W+Nq69qP5C9PbG\nMZPa6e9dMZgfdb/HtZdkvirbG+grb7XqryxPM37hNsLP4/obprOzk87OzsH03LnRW4ZdaSG7PzKu\nHt+ds0xE9vaz3gv8HbgFOMXPOxnvZFDDMIwRx1w99eHzwHUiMh7vHKBPAWOBG0TkVGAJUNe/yDAf\nfzKtOMzHPzwt8/EPTwdG2sffeA0RuQRvk8sA0A2coqov+3byZ8AhwGbgi6p6n1/nIOCXwCS8nZJf\nrKUzYoZfVf8GvDmiyP1PWw3DMFqDLlW9EEBEzgYuBM4EPoN/OKaIbAf8D96HAMC/A6ep6kMicruI\nHKmqd1YTGcl9/E3H9vEn04rD9vEPT8v28Q9PB1p/H7+qht/oU9iywWVfvL9tQlVfBXpE5BD/t9B2\nVX3If92vSLANflQd2WAYhpGWZrnsReRS4CSgBwgOwfobcLSIXA/sChwM7IL3wRBeZb4IRPsuwxpZ\n/gEiDqlyHn+u0EGptyeyrBrt+QLFnjVOdfKFDoqOWrl8gV5HnVy+g1IxRZ9yBYq9je8TpO1XgVKx\nt/YLK2jP5Z2vsZn9ynd0UOxxvC8KBXrXOI5fE+/1bVlLpD7n8b/5G9GHF4YpLn6U0vOPDqZfuvfa\nIdoicjcQ/nFO8Az411X11tDrvgZMVtWLRWQs8G3gXXi/f44HrgSWA5ep6hF+ndnAHFU9ump/Ws3w\nG4ZhhKmX4Y87tbYaD1/w7tTaIrIL3o+1QyIgisgC4DS8bwW/84++QUQ+DhymqmdUa3tU+fgt5m7t\nsqzEVs2CVtbnqplaWZmrkYy52wwfv4jsGUoeAzzp50/2TzdARA4HNqnqU/4JB70icqiICJ6LqOY2\nePPxG4ZhJKBJTobL/b9vGsBz6Zzu528P3Ckim/HcO58M1TmLrbdz3lFLxFw9hmG0NPVy9cya+7/O\n9R656L3bXMxdwzAMw6eV1prm48d8/EnrZMHv3kytrM9VM7WyMlet7uNvFrbiNwzDSECG7bgz5uM3\nDKOlqZePf79/udu53uP/engmffyjytVjGIZhjDLDbz7+2mVZ8eVmQSvrc9VMrazMlfn464P5+A3D\nMBKQYTvujPn4DcNoaerl49/3/KonHUey8JtHZtLHbyt+wzCMBLTSWrPlfPz5Qgci4vzIFzoi26vm\nU2zP5Z112nP52PbitNL2KY1We7t7n0SE9vZorXqPX7V+VdVqz6XSyuULke1l4b7omDYt5b0e3adq\nWtvyXNWLgQF1fmSVllvxF3t7OPDi6D+t7lv1YmRIxP51vTzR9VFnrXKpyP4X3uOk9dgl7gHGir09\nvPPyO5gwZeibaO0ry5iyfXRIxHvOfpuzVrlcpO3YX0SWRQV2H6x386nuWqUirznl+siy/t4VseED\nV/7y4+5a5RKTDjwrsmygr4cxk4YaDe3vo/TE1e5apSIzzvqvIfmbepYzvhB9VPqLP64ZO2MIPWvW\n8Jv7nyRXmDakbPmS59h5t9dF1vvQm9zDdZZLRWZ+4b8jyzauWR4bvvKFf/uwu1a5xKQP/ziyTDeW\nkQnRYUhL/x09v/XCVvx1QkTGiMhfReQWP90hIneJyNMicqeIxC+DUhAXB3dcW7xMVmLuRhl9INbo\nD0crjjTxfdOOX5qYsenjuEavFGXcpLpqxRn9WlTTijL6QKzRH45WHHFGv946QKzRbwattKtnpF09\nXwAWhtLnAveo6uvxwoydNyJXZRiGUYGq+yOrjJjhF5EZwAeBq0LZncC1/vNrSRA70oW4OLj96+Kj\nQGUl5u7GtdHXuPYV9zi4tbTiSBPfN+34pYkZmz6Oa3S0J+3vq6vWpp7o2L61qKZV7Fkdmb98yXN1\n14ojLmZxvXXAc/WMFK204h9JH//3gK8CYR/GDqraDaCqL4vI9iNyZYZhGBVk2I47MyIrfhH5ENCt\nqo/ixZuMo65DbT7+ZFpxmI9/eFrm4x+eDpiPv16M1Ir/HXgR4z8ITAbaReTXwMsisoOqdovIjsAr\ncQ3MmTOHtrY2AGbNmsXs2bMHb6bAdRMY9KTpgOBraNBeXDrAVS9p++E3x8a1vYPGP3D71Eq79idI\n6wbv67RMnOqUdtULGOgrATBmUnuidNBG0v5U6gUunMCw10qnma/NfUXGTsoNPgdqpsN9c+lP4O4J\nPgRqpYM20o7f5vX+9U/OJUqnGb/w7p3AvVMrHTB//nwWLFgwaB+MoYyI4VfV84HzAUTkMODLqvpJ\nEekCTgG+BZxMldiRXV1dse1XruCDdLDFstoKH7a+AcNvkKjyOL2+VS8O5leWx7UXaNVaDYVX/1Hb\nOSu/HUTphd/MleWBQa9MB9s548qj2ksyfmGDHqT7e1cM5leWV7ZRa/yG9K9iJa/9fVut+is/AFzH\nD7YY9fDzYDtnuKzytXHtRfUXPKNeuerPFaaxfMlzg/lR3wri2ksyX4FBD9jcV9pq1V9Znmb8wiv7\n8POo7ZyV6c7OTjo7OwfTc+fOHdJ+GrK8gncla/v4LwduEJFT8eJNHj/C12MYhuHROnZ/5A2/qt4H\n3Oc/Xw24/4VTQszHn0wrDvPxD0/LfPzD04GR9/G3CiNu+A3DMLYFWsnwj/QfcDUV28efTCsO28c/\nPC3bxz88HWj9ffwicomI/E1EHhGRO/xNLojIeBH5hYg85pcd5udPFpH/FpEnReRxEflmEp1RZfgN\nwzDS0qTtnF2qeoCqzgJuAy708z/jXYLuDxwBXBGq821V3QeYBcwWkSNribTcefz5QgfF3ugVXDVy\n+QK9PWuc6qTRapZOWq1cvoNS0V2rPVeg2OuoVeiglKJf7fkCRed+FSgV47/ZxWrl8u5znKJfafrU\nMW0aPWvc6gAUOjpYszr6m0Ic2/JcidTnPP4ZZw49eK8WL/7kmNTaInIusIuqniUiPwL+pKrX+WX3\nAOeq6sMVdb4PPK6qVU8XbDkfv6uh2xa0mtknV+M9LK2m9svdaKXWalK/XI33cGjVuXKhWYtkEbkU\nOAnoAd7tZ/8N72+frgd2BQ4GdgEeDtUrAEcB36+lMapcPRZzt3ZZVmKrZkEr63PVTK2szFUrxNwV\nkbt9X33weNz//yhf5wJV3RW4Djjbr/YLYDnwEPBdYAGwOdTmWGAe8H1VfaFWX1puxW8YhtEIkqz4\nN7z0BBtf+nutdg5PKDkPuB24WFU3A18KCkRkAfBM6LVXAk+r6g+TNNxyPn7DMIww9fLx7/TZm53r\nrbjyWCdtEdlTVZ/1n58N/IOqHi8ik/Hs9ToRORz4uqq+y3/dpcDrVfW4pDq24jcMw8gOl4vI3sAA\n3ukFp/v52wN3ishmPJfPJwFEZGe842+eFJFH8P6++EeqGh1Gz8d8/JiPP2mdLPjdm6mV9blqplZW\n5qoVfPw1ND6mqvur6oGq2qmqK/z8Jar6BlV9o6oeoarL/PzlqjrGz5+lqgfVMvpgK37DMIxEtJJ7\n2Xz8hmG0NPXy8W9/2g3O9V65+vhhazcCW/EbhmEkoJUWm+bjx3z8Setkwe/eTK2sz1UztbIyVyPp\n40dTPDKKrfgNwzAS0EorfvPxG4bR0tTLxz/95N8411t17Qnm4zcMw9hWaaXFZsv5+POFDkTE+ZEv\ndES2V82n2N6ed9Zpb4+P9hWnlUvZp/acu1Z7zr1P1bSqj18unVZ7LrK9qlop+2X3ha+VL6TSyuWj\no5s1Yq5yMXNVN8zHn12KvT28vesPkWXrX13G5O2GhirctLaXh+Ye5axVLhfJffxXkWWbiysYmxsa\nPrB4/UnOOqXeHqafcFVk0PH+3hWxYQpfveYfnbXKpSJvuuCuyLINq5YzcXp0mL0nLj3CXatcYtJR\nP4ksGyh3M2ZqdKjH8q1numuVisz+zh8jy9a9uoy2mPvizxd92F2rXGTaJ+cNye8vrmBcxD0BsPrX\nJzrrlHp72O2M64cENwcvOEpcSMTF3/2gu1axl9Nvij6DpmfFEgo77RZZ9tOPvdFZq1wq8trTfxtZ\nNtBXinwfALz00486a7lgK/5hIiIzROReEfm7eCfTfd7P7xCRu0TkaRG5U0TilyYpiDL6AONj4tlC\n+leprYsAABL6SURBVNigUUa/FtW04m72NLFpa2nFEWf0660DxBr9RmhFGX2o/30RZ/RrUU0ryuhD\nuji4tbTiiDP69daB+PdBM2hSIJamMFKunn7gS6r6RuBtwFki8gbgXOAeVX09cC9w3ghdn2EYRssy\nIoZfVV9W1Uf952XgSWAG0Alc67/sWuCYeuqufzU6Pu2mmHi2kH7f8OZifWPGDvSVIvPTxKatpRXH\nhlXNi606UG5efN91Tbov+lPcE7W0Nq8vRuaniYNbSyuOnhVLmqID8e+DZtBKK/4R9/GLyEzgQOAB\nYAdV7Qbvw0FEth/BSzMMwxgky4bclRE1/CIyFbgJ+IKqlkWkcmTrOtLm40+mFYf5+IenZT7+4enA\nyPr4s7xLx5URM/wiMg7P6P9aVef72d0isoOqdovIjsArcfXnzJlDW1sbALNmzWL27NmDN1PwFT14\n4yZNBwRfQ4P24tIBAxu8r59jJrYnSidtP/zmCO9mCL7u1kq79idI96/z3Afj2nJOaVe9AN1YBkAm\nTE2UDtpI2p9KPdf7I9V8bSglvh+CdLhvLv0J3D3Bh0CtdNBG2vHrK3kxcSe1FxKlm32/z58/nwUL\nFgzah3phK/768Atgoar+WyjvFuAU4FvAycD8iHoAdHV1xTZcuVIL0sF2zmorOdj6Bgy/QaLKYcsb\nOJzeXFwBfn5leVx7gVat1VB41RO1nbNyVRSlF34zV5YHBr0yHWznjCuPai/J+IUNepAeKHcP5leW\nV7ZRa/wq05Xzv2ldcatVf+UHgOv4wdZzHjwPtnNG3S/VrrcyL/x88/rikFX/2Mk5Nq5ZPpgf9a0g\nrr0k8xUY9IC+cu9Wq/7K8lTjF7qHw8+jtnNWpjs7O+ns7BxMz507d0j7aTDDP0xE5B3AJ4DHZUvU\nmPPxDP4NInIqXvSZ40fi+gzDMCoxwz9MVHUBMDam+H2N0jUffzKtOMzHPzwt8/EPTwdGfh9/qzDi\nu3oMwzC2CVrH7rfeWT3VsH38ybTisH38w9OyffzD0wHbx18vbMVvGIaRgCwbclda7jz+fKGDYm+P\nc5u5fIHenjWOdTooFd202nMFir2OOoUOSin61J4vUHTsU3PHr0CpGL+qjqM9l3e+RrsvQlop7otC\nxzTncQBv3HvWrHaqU+9+idTnPP5Jx/zcuV7ff30mk+fxt5zhNwzDCLMtGX4RuQTv6JoBoBs4xT/F\nYDzwM+AQYDPwRVW9r6LuLcBMVd2/ls6o8vFbzN3aZVmJrZoFrazPVTO1sjJXIxtzd8D94U6Xqh6g\nqrOA24AL/fzPAOob9SOAK8KVROQjQPQPPhGMKsNvGIaRGlX3h7OElkPJKWzZS7Qv3onFqOqrQI+I\nHAIgIlOAc4BLk+qYq8cwjJambq6emKBB1ei79UxnbRG5FDgJ6AHeraqrROQzeH/jdCKwK/BX4FRV\n/U8R+S7we+BvwK1JXD22q8cwDCMJCRabm1c+w8CqeNcXgIjcDYT/QlHwVvZfV9VbVfUC4AIR+Rpw\nNnAx3hE3+wAP4Z1qsADYLCIHAK9T1S/5Jx0n+pAZVa4e8/HXLsuKLzcLWlmfq2ZqZWWusu7jHzt9\nT8bv/YHBR2Qzqoer6v6hx37+/7dWvHQecKxfZ7OqfklVD1LVjwAdwDN4gawOFpHFwB+BvUXk3lpd\nsRW/YRhGEtL9WOuEiOypqs/6yWPwglQhIpPxXPPrRORwYJOqPgU8BfzUf81ueK6e99TU2RZ95ebj\nNwwjKXXz8X/g+871+v7ni67bOW8C9sbbzrkEOF1VV/hG/U68rZzLgdNUdVlF3cDwm4/fMAyjLjRh\nxa+qH4vJXwK8oUbdJUBNow/m4wfMx5+0Thb87s3UyvpcNVMrK3M1sj7+xm/nbBa24jcMw0hCE1b8\nzcJ8/IZhtDR18/EfHh/1L46+u+dk8qyeUeXqMQzDMFrQ8OcKHYiI8yNX6Ihsr5pPsT2Xd9Zpz8VH\ndYrTyuXT9am93V2rvd29T9W06j1+1cawqlbKfuXyWb4vCinnKjpqVzWtpt4X+XRa+Y7ouaobzTmr\npym0nI+/1NvDdqf+v8iyqMDk4AV3WDXv085a5VKRQy79XWRZ38plTHrN0JB+D1/wbmedUrGHiR+4\nIjLo+EC5OzZMYXn+55y1yuUi+RN/HVm2ubgiNqRk77xPumuVimx/2g2RZXFzBfDK1e6hmMvlIlOO\nuyaybKDUzZj2oWOoG8qUbjnbXatU5NBv/n5I/vqVy5gccU8APHj+u5x1SsVeJr7pNGTcpCFlA309\njJlUiKgF5Ud/7KzV1PuiWORj1/wlsmxDuYeJU6P7ddOnDnbWcqKF3MuZXPGLyPtF5CkReUa8P1uu\nC3GGpFocz7SxQaOMfi2qaUUZfUgXm7aWVhz1jiNcjTSxhFPHcY0w+gAyMXrM02rFGf1aVL0vIow+\nEGv0h6MVRzPvizij3xRaaMWfOcMvImOAHwFHAm8EThCRqvtXDcMwGk4LbefMnOEHDgUWqeoSVd0E\nXI8XmGDYxMWnrRbHM+2+4b6V0XFcq1FNSzeWI/PTxKatpRVHveMIVyNNLOHUcVxL0WOoG6LHPK3W\n+hT3RC0t7e+LzB/oc49gVUsrjmbeFxvK6fpVF1poxZ9FH//OQPgd8iLeh4FhGMbIMZDdFbwrWTT8\nDcN8/Mm04jAf//C0zMc/PB3IgI+/Rcii4V+OF2ggYIaftxVz5syhra0NgFmzZjF79uzBmylw3QQG\nPWk6IPgaGrQXlw7oX+cFDB/Xlk+UTtp++M2hG8uDxj9w+9RKu/ZncPw2+OMzsd0p7aoX4DpfQRtJ\n+1OpF7hwAsNeK51mvjat62W8P9+b/PmvlQ73zak/vrsn+BColQ7aSDt+rvdHmvEL794J3Du10gHz\n589nwYIFg/ahbpjhbygPAXuKd9LcCuDjwAmVL+rqiv8rusoVfJAOtghWW+HD1jdg+A0SVQ5bDHo4\n3bdy2WB+ZXlce4FWrdVQePUftZ2z8ttBlF74zVxZHrxhK9PBtr248qj2koxf1Hz1964YzI+ar3Ab\ntcavMl25kteNa7da9Vd+ALiOH2wx6uHnwXbO8RX3Q2U6qr2o/oJn1CtX/TJuEgN9PYP5Ud8K4tpL\nNF8V860bylut+qvdD0G61viFV/bh51HbOSvTnZ2ddHZu+Vlw7ty5Q9pPRYZ/rHUlc4ZfVTeLyD8D\nd+H9+Hy1qj45wpdlGMZox1b8jUVV7wBeX+92zcefTCsO8/EPT8t8/MPTgZH28duK3zAMY3TRQiv+\nLO7jbxi2jz+ZVhy2j394WraPf3g6MML7+FsIW/EbhmEkoYVcPS13Hn+u0EGp131V0J4vUOxZ41Qn\nX+ig6KiVyxfoddTJ5TsoFVP0KVeg2JthrSbOVTP71bz7okCp2Fv7hRW05/Iprq+J49fRQbHHXStX\nKNC7ZqiWSJ3O4z/0K871+h78TibP4285w28YhhGmbob/zV92rtf30BWZNPyjysdvMXdrl2UltmoW\ntLI+V83UyspcjWzM3dY5q2dUGf4HHnig5bRasU+tqtWKfWq21v333980rSHY6ZzbJs8991xkfrU9\nxWnLmqUVp5O2vTR9Stte1rWyPlfN1MrKXD3yyCOxZQ3HVvzbJi+88EJk/u9///vYOmnLmqUVp5O2\nvTR9Stte1rWyPlfN1MrKXI0otuLfNlm4cGFk/u233x5bJ21Zs7TidNK2l6ZPadvLulbW56qZWlmZ\nq3Xr1sWWNZwWWvFvs7t6RvoaDMPYdqjDrp4XgN1SVF2iqjOHo90ItknDbxiGYaRnVLl6DMMwDDP8\nhmEYo45RYfhF5P0i8pSIPCMiX6tz2zNE5F4R+buIPC4in/fzO0TkLhF5WkTuFJF8rbYS6o0Rkb+K\nyC0N1smLyI0i8qTft7c0UOscEXlCRB4TketEZEK9tETkahHpFpHHQnmxbYvIeSKyyO/3EXXQ6vLb\nelREbhaRXKO0QmVfFpEBEZnWSC0ROdtv73ERuXy4WjHjd4CI/ElEHhGRB0XkkHr0adSjqi39wPtw\nexbvh5nxwKPAG+rY/o7Agf7zqcDTwBuAbwFz/PyvAZfXSe8c4D+AW/x0o3R+CXzKfz4OyDdCC3gt\nsBiY4Kf/H3ByvbSA2cCBwGOhvMi2gX2BR/z+zvTvGxmm1vuAMf7zy4HLGqXl588A7gCeB6b5efs0\noF/vwguWNM5Pv2a4WjE6dwJH+M8/APyuHuM32h+jYcV/KLBIVZeo6ibgeqCzRp3EqOrLqvqo/7wM\nPIn35usErvVfdi1wzHC1RGQG8EHgqlB2I3RywD+o6jUAqtqvqr2N0PIZC0wRkXHAZLwYy3XRUtX7\ngcqTu+LaPhq43u/vC8AivPsntZaq3qM6uK/vAbx7oyFaPt8DvlqR19kArTPwPjD7/desHK5WjM4A\n3qIDoMCW+NvDGr/Rzmgw/DsD4YPQX/Tz6o6IzMRbsTwA7KCq3eB9OADb10EieFOHt2I1Qmd3YKWI\nXOO7la4UkbZGaKnqS8AVwFK8N3Wvqt7TCK0Q28e0XXmvLKe+98qpQLBJve5aInI0sExVH68oakS/\n9gbeKSIPiMjvROTgBmmdA3xHRJYCXcB5DdIZVYwGw98URGQqcBPwBX/lX7lPdlj7ZkXkQ0C3/+2i\n2p7keuzPHQccBPxYVQ8C1gLnRrQ9bC0RKeCtEnfDc/tMEZFPNEKrCg3f0ywiXwc2qepvGtT+ZOB8\n4KJGtB/BOKBDVd8KzAFubJDOGXjvqV3xPgR+0SCdUcVoMPzLgV1D6Rls+bpYF3wXxU3Ar1V1vp/d\nLSI7+OU7Aq8MU+YdwNEishj4DfAeEfk18HKddcD7VrRMVR/20zfjfRDUu0/g+cAXq+pqVf3/7d1f\naFZ1HMfx94em+YesFKory78Qpa1AigWNFESIClJQpNCyi6DwYleS5ci66SYQsX9UVMZuitJ5YUSO\nvMjK6XTTvDGUFJUCifTKYHy7+P1yxycf17bzuLXzecED2+95zu/7O8+23zn7nfN8v/3AV0BLg2L9\no17fZ4BiYdxSflckrSUt0a0uNJcdaw5prbtX0sncX4+k22jM38Bp4EuAiOgG+iXNaECsNRGxI8f5\nAliU2xvys6qKKkz83cBcSXdKmgisAjpLjvERcCwithTaOoG1+es1wM7ajYYiIl6OiJkRMZu0D10R\n8Qywq8w4OdZvwGlJ83PTEuBnSt6n7BTwkKRJkpRjHSs5lrjyv6R6fXcCq/JdRbOAucD+kcSStIy0\nPPdERFyqGUNpsSLiaETcERGzI2IW6eB9f0T8nmOtLHO/gB3A4ryP80kX58+XEKs2zhlJrTnOEtJa\nPpTz/lXXaF9dvh4PYBnpbpvjwIaS+34Y6CfdLXQI6MnxpgPf5rjfALeUGLOVgbt6GhIHuI900DxM\nOrO7uYGx2kkXxftIF1snlBUL6ADOApdIB5lngVvr9U1aQ/4lj2dpCbGOA7/m34se4O1Gxap5/gT5\nrp4G7VcTsB04AhwAWkcaq06cltz/IeAH0sFsxPtU9YdTNpiZVUwVlnrMzKzAE7+ZWcV44jczqxhP\n/GZmFeOJ38ysYjzxm5lVjCd+K03+kFxtnpjBtmmX1Ja/fk3S4kFe/4akU5IuDGN8rZJ2DXU7s/HG\nE7+VbdgfDImI9ojoGuRlnQx8bH9YYUawrdm44InfytaUs3kelfS1pBsBJM2WtFtSt6S9hXQQl+Vs\noE9JmqZUOGdebu+QtA4gIvZHzqxZT/4v4lNJ+5SKrTxfePomDRSY2V7Y5lVJPykVg3m30L5eqRDN\nYUkduW1KLhryo6SDkh4f0Ttmdp154reyzQO2RsS9wJ/A8tz+PvBSRCwi5a55p14HEXEBeBH4RNJK\nUkqFD4c4jgWkYiEtwKacjA1S2uz1pEIecyS15PatEfFgRCwEpuRsqJAKtTRHRDPwQm7bCOyJlJly\nMSlt8OQhjs9s1Hjit7KdiIF88AeBuyRNJU3An0s6BLwH3H6tTiJiDykPzDZg3TDGsTMi/oqUOKyL\ngSId+yPiXKRcJYdJGS0BluQz+D7gUeCe3N4LdORU0f25bSmwIe/Ld8BErsxIaTamNY32AGzcKWag\n7AcmkU4w/oiU2/8/yZk67ybVApgOnBviOIpr+Sp8Xzu+prwctQ14ICLOSmrP4wZ4DHiEVPFpo6QF\nub/lEXEcs/8hn/Fb2f5VJCYiLgInJa24/CJp4SD9tJHSM68GPpZ0w2BxajyZU/bOIGUz7b7GayeR\nDgznc0GdFYXnZkbEXlIhmmnAVFId2PWFfWkeZCxmY4onfitbvbtmngbW5YukR0ln0FfdNl/4fQ5o\ni4jvgb3AK/m5NyWdBibn2zo31YnXR1qG2QdsjlRi8arxItUT/oBUc2A3Oa97LrDzmaRe0rLVlnz9\n4XVgQr4QfATYXPfdMBuDnJbZxp28VHMxIt4a7bGYjUU+4zczqxif8ZuZVYzP+M3MKsYTv5lZxXji\nNzOrGE/8ZmYV44nfzKxiPPGbmVXM34X8EepeRLTKAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x115c75ed0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "major_ticks = np.arange(0, 200, 20)                                              \n",
    "minor_ticks = np.arange(0, 180, 5)  \n",
    "\n",
    "fig = plt.figure(figsize = (6,5))  \n",
    "ax = fig.add_subplot(1,1,1) \n",
    "s = ax.scatter('helix1 phase', 'helix 2 phase', c = 'Energy',data = phase_1_2, cmap = 'Blues_r', marker = 's',s = 190)\n",
    "ax.axis([phase_1_2['helix1 phase'].min()-10, phase_1_2['helix1 phase'].max()+10, phase_1_2['helix 2 phase'].min()-10, phase_1_2['helix 2 phase'].max()+10])\n",
    "ax.set_xticks(major_ticks)                                                       \n",
    "ax.set_xticks(minor_ticks, minor=True)                                           \n",
    "ax.set_yticks(major_ticks)                                                                                                                                                      \n",
    "ax.grid(which='both', alpha = 0.3)                                                                                                           \n",
    "ax.grid(which='major', alpha=0.3) \n",
    "ax.set_xlabel('helix1 phase', fontsize=10);\n",
    "ax.set_ylabel('helix 2 phase', fontsize=10);\n",
    "\n",
    "# http://stackoverflow.com/questions/13943217/how-to-add-colorbars-to-scatterplots-created-like-this\n",
    "cbar = plt.colorbar(mappable = s,ax = ax)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
